package com.example.sandbox.controller.order.model;

import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/*
 * 申请转账 请求参数
 *
 * 
 * 
 
 * 
 * @date 2021/8/10 11:31
 */
@Data
public class TransferOrderRQ extends AbstractMchAppRQ {


    // 区分58-uu订单用的, 沙箱专用
    private String orderId;

    /**
     * 商户订单号
     **/
    @NotBlank(message = "Merchant order number cannot be empty")
    private String mchOrderNo;

    /**
     * 支付接口代码
     **/
    @NotBlank(message = "The payment interface code cannot be empty")
    private String ifCode;

    /**
     * 入账方式
     **/
    @NotBlank(message = "The payment method cannot be empty")
    private String entryType;

    /**
     * 支付金额， 单位：分
     **/
    @NotNull(message = "The transfer amount cannot be empty")
    @Min(value = 1, message = "The transfer amount cannot be less than 1 point")//转账金额不能小于1分
    private Long amount;

    /**
     * 货币代码
     **/
    @NotBlank(message = "Currency code cannot be empty")
    private String currency;

    /**
     * 收款账号
     **/
    @NotBlank(message = "The receiving account cannot be empty")
    private String accountNo;

    /**
     * 收款人姓名
     **/
    private String accountName;

    /**
     * 收款人开户行名称
     **/
    private String bankName;

    /**
     * 客户端IP地址
     **/
    private String clientIp;

    /**
     * 转账备注信息
     **/
    @NotBlank(message = "The transfer note information cannot be empty")
    private String transferDesc;

    /**
     * 异步通知地址
     **/
    private String notifyUrl;

    /**
     * 特定渠道发起额外参数
     **/
    private String channelExtra;

    /**
     * 商户扩展参数
     **/
    private String extParam;

}
